#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[10];
bool prime[20];
int Case;
//判断当前是否符合要求
bool judge(int id){
    int y=id%3;
    int x=id/3;
    if(y-1>=0&&!prime[a[x*3+y-1]+a[id]])return false;
    if(x-1>=0&&!prime[a[(x-1)*3+y]+a[id]])return false;
    return true;
}
void dfs(int id){
    if(id>=9){
        cout<<"Case "<<Case++<<":"<<endl;
        for(int i=0;i<9;i++){
            if(i%3!=2)cout<<a[i]<<" ";
            else cout<<a[i]<<endl;
        }
        return ;
    }
    for(int p=id;p<=9;p++){
        swap(a[p],a[id]);
        if(judge(id))dfs(id+1);
        swap(a[p],a[id]);
    }
    return ;
}

int main()
{
    for(int i=0;i<=9;i++){
        a[i]=i+1;
    }
    memset(prime,false,sizeof(prime));
    //此问题涉及的所有素数
    prime[2]=prime[3]=prime[5]=prime[7]=prime[11]=prime[13]=prime[17]=prime[19]=true;
    Case=1;
    dfs(0);
    getchar();
    getchar();
    return 0;
}
